load("@prysm//tools/go:def.bzl", "go_library", "go_test")

go_library(
    name = "go_default_library",
    srcs = [
        "batch_verifier.go",
        "block_batcher.go",
        "context.go",
        "custody.go",
        "data_column_assignment.go",
        "data_column_sidecars.go",
        "data_columns_reconstruct.go",
        "deadlines.go",
        "decode_pubsub.go",
        "doc.go",
        "error.go",
        "fork_watcher.go",
        "fuzz_exports.go",  # keep
        "log.go",
        "metrics.go",
        "once.go",
        "options.go",
        "pending_attestations_queue.go",
        "pending_blocks_queue.go",
        "rate_limiter.go",
        "rpc.go",
        "rpc_beacon_blocks_by_range.go",
        "rpc_beacon_blocks_by_root.go",
        "rpc_blob_sidecars_by_range.go",
        "rpc_blob_sidecars_by_root.go",
        "rpc_chunked_response.go",
        "rpc_data_column_sidecars_by_range.go",
        "rpc_data_column_sidecars_by_root.go",
        "rpc_goodbye.go",
        "rpc_light_client.go",
        "rpc_metadata.go",
        "rpc_ping.go",
        "rpc_send_request.go",
        "rpc_status.go",
        "service.go",
        "slot_aware_cache.go",
        "subscriber.go",
        "subscriber_beacon_aggregate_proof.go",
        "subscriber_beacon_attestation.go",
        "subscriber_beacon_blocks.go",
        "subscriber_blob_sidecar.go",
        "subscriber_bls_to_execution_change.go",
        "subscriber_data_column_sidecar.go",
        "subscriber_handlers.go",
        "subscriber_sync_committee_message.go",
        "subscriber_sync_contribution_proof.go",
        "subscription_topic_handler.go",
        "validate_aggregate_proof.go",
        "validate_attester_slashing.go",
        "validate_beacon_attestation.go",
        "validate_beacon_blocks.go",
        "validate_blob.go",
        "validate_bls_to_execution_change.go",
        "validate_data_column.go",
        "validate_light_client.go",
        "validate_proposer_slashing.go",
        "validate_sync_committee_message.go",
        "validate_sync_contribution_proof.go",
        "validate_voluntary_exit.go",
    ],
    importpath = "github.com/OffchainLabs/prysm/v7/beacon-chain/sync",
    visibility = [
        "//beacon-chain:__subpackages__",
        "//cmd:__subpackages__",
        "//testing:__subpackages__",
    ],
    deps = [
        "//async:go_default_library",
        "//async/abool:go_default_library",
        "//async/event:go_default_library",
        "//beacon-chain/blockchain:go_default_library",
        "//beacon-chain/cache:go_default_library",
        "//beacon-chain/core/altair:go_default_library",
        "//beacon-chain/core/blocks:go_default_library",
        "//beacon-chain/core/feed:go_default_library",
        "//beacon-chain/core/feed/block:go_default_library",
        "//beacon-chain/core/feed/operation:go_default_library",
        "//beacon-chain/core/feed/state:go_default_library",
        "//beacon-chain/core/helpers:go_default_library",
        "//beacon-chain/core/peerdas:go_default_library",
        "//beacon-chain/core/signing:go_default_library",
        "//beacon-chain/core/transition:go_default_library",
        "//beacon-chain/core/transition/interop:go_default_library",
        "//beacon-chain/db:go_default_library",
        "//beacon-chain/db/filesystem:go_default_library",
        "//beacon-chain/db/filters:go_default_library",
        "//beacon-chain/execution:go_default_library",
        "//beacon-chain/light-client:go_default_library",
        "//beacon-chain/operations/attestations:go_default_library",
        "//beacon-chain/operations/blstoexec:go_default_library",
        "//beacon-chain/operations/slashings:go_default_library",
        "//beacon-chain/operations/synccommittee:go_default_library",
        "//beacon-chain/operations/voluntaryexits:go_default_library",
        "//beacon-chain/p2p:go_default_library",
        "//beacon-chain/p2p/encoder:go_default_library",
        "//beacon-chain/p2p/peers:go_default_library",
        "//beacon-chain/p2p/types:go_default_library",
        "//beacon-chain/slasher/types:go_default_library",
        "//beacon-chain/startup:go_default_library",
        "//beacon-chain/state:go_default_library",
        "//beacon-chain/state/stategen:go_default_library",
        "//beacon-chain/sync/backfill/coverage:go_default_library",
        "//beacon-chain/sync/verify:go_default_library",
        "//beacon-chain/verification:go_default_library",
        "//cache/lru:go_default_library",
        "//cmd/beacon-chain/flags:go_default_library",
        "//config/features:go_default_library",
        "//config/fieldparams:go_default_library",
        "//config/params:go_default_library",
        "//consensus-types/blocks:go_default_library",
        "//consensus-types/interfaces:go_default_library",
        "//consensus-types/primitives:go_default_library",
        "//consensus-types/wrapper:go_default_library",
        "//container/leaky-bucket:go_default_library",
        "//container/slice:go_default_library",
        "//crypto/bls:go_default_library",
        "//crypto/rand:go_default_library",
        "//encoding/bytesutil:go_default_library",
        "//encoding/ssz/equality:go_default_library",
        "//io/file:go_default_library",
        "//math:go_default_library",
        "//monitoring/tracing:go_default_library",
        "//monitoring/tracing/trace:go_default_library",
        "//proto/prysm/v1alpha1:go_default_library",
        "//proto/prysm/v1alpha1/attestation:go_default_library",
        "//proto/prysm/v1alpha1/metadata:go_default_library",
        "//runtime:go_default_library",
        "//runtime/logging:go_default_library",
        "//runtime/messagehandler:go_default_library",
        "//runtime/version:go_default_library",
        "//time:go_default_library",
        "//time/slots:go_default_library",
        "@com_github_ethereum_go_ethereum//common/hexutil:go_default_library",
        "@com_github_ethereum_go_ethereum//p2p/enode:go_default_library",
        "@com_github_hashicorp_golang_lru//:go_default_library",
        "@com_github_libp2p_go_libp2p//core:go_default_library",
        "@com_github_libp2p_go_libp2p//core/host:go_default_library",
        "@com_github_libp2p_go_libp2p//core/network:go_default_library",
        "@com_github_libp2p_go_libp2p//core/peer:go_default_library",
        "@com_github_libp2p_go_libp2p//core/protocol:go_default_library",
        "@com_github_libp2p_go_libp2p_pubsub//:go_default_library",
        "@com_github_libp2p_go_mplex//:go_default_library",
        "@com_github_patrickmn_go_cache//:go_default_library",
        "@com_github_pkg_errors//:go_default_library",
        "@com_github_prometheus_client_golang//prometheus:go_default_library",
        "@com_github_prometheus_client_golang//prometheus/promauto:go_default_library",
        "@com_github_prysmaticlabs_fastssz//:go_default_library",
        "@com_github_prysmaticlabs_go_bitfield//:go_default_library",
        "@com_github_sirupsen_logrus//:go_default_library",
        "@com_github_trailofbits_go_mutexasserts//:go_default_library",
        "@io_opentelemetry_go_otel_trace//:go_default_library",
        "@org_golang_google_protobuf//proto:go_default_library",
        "@org_golang_x_sync//errgroup:go_default_library",
        "@org_golang_x_sync//singleflight:go_default_library",
    ],
)

go_test(
    name = "go_default_test",
    size = "small",
    srcs = [
        "batch_verifier_test.go",
        "blobs_test.go",
        "block_batcher_test.go",
        "context_test.go",
        "custody_test.go",
        "data_column_assignment_test.go",
        "data_column_sidecars_test.go",
        "data_columns_reconstruct_test.go",
        "decode_pubsub_test.go",
        "error_test.go",
        "fork_watcher_test.go",
        "kzg_batch_verifier_test.go",
        "once_test.go",
        "pending_attestations_queue_bucket_test.go",
        "pending_attestations_queue_test.go",
        "pending_blocks_queue_test.go",
        "rate_limiter_test.go",
        "rpc_beacon_blocks_by_range_test.go",
        "rpc_beacon_blocks_by_root_test.go",
        "rpc_blob_sidecars_by_range_test.go",
        "rpc_blob_sidecars_by_root_test.go",
        "rpc_data_column_sidecars_by_range_test.go",
        "rpc_data_column_sidecars_by_root_test.go",
        "rpc_goodbye_test.go",
        "rpc_handler_test.go",
        "rpc_light_client_test.go",
        "rpc_metadata_test.go",
        "rpc_ping_test.go",
        "rpc_send_request_test.go",
        "rpc_status_test.go",
        "rpc_test.go",
        "service_test.go",
        "slot_aware_cache_test.go",
        "subscriber_beacon_aggregate_proof_test.go",
        "subscriber_beacon_blocks_test.go",
        "subscriber_data_column_sidecar_test.go",
        "subscriber_test.go",
        "subscription_topic_handler_test.go",
        "sync_fuzz_test.go",
        "sync_test.go",
        "validate_aggregate_proof_test.go",
        "validate_attester_slashing_test.go",
        "validate_beacon_attestation_test.go",
        "validate_beacon_blocks_test.go",
        "validate_blob_test.go",
        "validate_bls_to_execution_change_test.go",
        "validate_data_column_test.go",
        "validate_light_client_test.go",
        "validate_proposer_slashing_test.go",
        "validate_sync_committee_message_test.go",
        "validate_sync_contribution_proof_test.go",
        "validate_voluntary_exit_test.go",
    ],
    embed = [":go_default_library"],
    shard_count = 4,
    deps = [
        "//async/abool:go_default_library",
        "//async/event:go_default_library",
        "//beacon-chain/blockchain:go_default_library",
        "//beacon-chain/blockchain/kzg:go_default_library",
        "//beacon-chain/blockchain/testing:go_default_library",
        "//beacon-chain/cache:go_default_library",
        "//beacon-chain/core/altair:go_default_library",
        "//beacon-chain/core/feed:go_default_library",
        "//beacon-chain/core/feed/operation:go_default_library",
        "//beacon-chain/core/helpers:go_default_library",
        "//beacon-chain/core/peerdas:go_default_library",
        "//beacon-chain/core/signing:go_default_library",
        "//beacon-chain/core/time:go_default_library",
        "//beacon-chain/core/transition:go_default_library",
        "//beacon-chain/db:go_default_library",
        "//beacon-chain/db/filesystem:go_default_library",
        "//beacon-chain/db/kv:go_default_library",
        "//beacon-chain/db/testing:go_default_library",
        "//beacon-chain/execution:go_default_library",
        "//beacon-chain/execution/testing:go_default_library",
        "//beacon-chain/forkchoice/doubly-linked-tree:go_default_library",
        "//beacon-chain/light-client:go_default_library",
        "//beacon-chain/operations/attestations:go_default_library",
        "//beacon-chain/operations/blstoexec:go_default_library",
        "//beacon-chain/operations/slashings:go_default_library",
        "//beacon-chain/operations/slashings/mock:go_default_library",
        "//beacon-chain/p2p:go_default_library",
        "//beacon-chain/p2p/encoder:go_default_library",
        "//beacon-chain/p2p/peers:go_default_library",
        "//beacon-chain/p2p/testing:go_default_library",
        "//beacon-chain/p2p/types:go_default_library",
        "//beacon-chain/startup:go_default_library",
        "//beacon-chain/state:go_default_library",
        "//beacon-chain/state/state-native:go_default_library",
        "//beacon-chain/state/stategen:go_default_library",
        "//beacon-chain/sync/initial-sync/testing:go_default_library",
        "//beacon-chain/verification:go_default_library",
        "//cache/lru:go_default_library",
        "//cmd/beacon-chain/flags:go_default_library",
        "//config/features:go_default_library",
        "//config/fieldparams:go_default_library",
        "//config/params:go_default_library",
        "//consensus-types/blocks:go_default_library",
        "//consensus-types/interfaces:go_default_library",
        "//consensus-types/primitives:go_default_library",
        "//consensus-types/wrapper:go_default_library",
        "//container/leaky-bucket:go_default_library",
        "//container/slice:go_default_library",
        "//crypto/bls:go_default_library",
        "//crypto/rand:go_default_library",
        "//encoding/bytesutil:go_default_library",
        "//encoding/ssz/equality:go_default_library",
        "//genesis:go_default_library",
        "//proto/engine/v1:go_default_library",
        "//proto/prysm/v1alpha1:go_default_library",
        "//proto/prysm/v1alpha1/attestation:go_default_library",
        "//proto/prysm/v1alpha1/metadata:go_default_library",
        "//runtime/version:go_default_library",
        "//testing/assert:go_default_library",
        "//testing/require:go_default_library",
        "//testing/util:go_default_library",
        "//time:go_default_library",
        "//time/slots:go_default_library",
        "@com_github_d4l3k_messagediff//:go_default_library",
        "@com_github_ethereum_go_ethereum//common:go_default_library",
        "@com_github_ethereum_go_ethereum//core/types:go_default_library",
        "@com_github_ethereum_go_ethereum//p2p/enr:go_default_library",
        "@com_github_golang_snappy//:go_default_library",
        "@com_github_libp2p_go_libp2p//:go_default_library",
        "@com_github_libp2p_go_libp2p//core:go_default_library",
        "@com_github_libp2p_go_libp2p//core/crypto:go_default_library",
        "@com_github_libp2p_go_libp2p//core/network:go_default_library",
        "@com_github_libp2p_go_libp2p//core/peer:go_default_library",
        "@com_github_libp2p_go_libp2p//core/protocol:go_default_library",
        "@com_github_libp2p_go_libp2p//p2p/transport/quic:go_default_library",
        "@com_github_libp2p_go_libp2p_pubsub//:go_default_library",
        "@com_github_libp2p_go_libp2p_pubsub//pb:go_default_library",
        "@com_github_patrickmn_go_cache//:go_default_library",
        "@com_github_pkg_errors//:go_default_library",
        "@com_github_prysmaticlabs_fastssz//:go_default_library",
        "@com_github_prysmaticlabs_go_bitfield//:go_default_library",
        "@com_github_sirupsen_logrus//:go_default_library",
        "@com_github_sirupsen_logrus//hooks/test:go_default_library",
        "@com_github_stretchr_testify//require:go_default_library",
        "@org_golang_google_protobuf//proto:go_default_library",
    ],
)
